Technological advancements have led to more sophisticated and powerful data management systems. Data processing in such systems require efficient handling a large number of data transactions (e.g. data reads, writes, etc.).
The advent of the Internet and the World-Wide Web (WWW) combined with the development of network-based commerce system applications have enabled companies to transact business globally in real-time. Such network-based commerce systems may process large amounts of data transactions from geographically dispersed users. The users may enter transactional requests over communications lines that result in the persistent storage of data in a master information source (data store). In several cases, back-end systems (e.g., database servers, etc.) support the data store and interact with other systems or services to map the data between a persistent or relational form into an object form that is more readily utilized by software applications.
Furthermore, software developers typically expend a large amount of time and energy in managing access related to the data store and in managing memory usage within their applications, which is used to manipulate data acquired from the data store within the scope of their applications. One tool that developers rely on for improving processing throughput of their applications is a cache manager or cache service. However, cache services are typically not customizable and are not extensible by the developers within their applications. This is so, because caching services are generally implemented as black boxes having a defined set of generalized and static services or features. As a result, data store access and memory management are tasks that developers still largely have to account for within their individual applications. These tasks are time consuming and in some cases not optimal because some developers may not be as adept as other developers in handling these tasks.